home *** CD-ROM | disk | FTP | other *** search
- The malloc (memory allocator) provided by SGI for IRIX does not
- interact well with long lived IDL sessions involving large data.
- Rather than leveling off at a highwater mark, memory fragmentation
- causes IDL memory use to grow under such situations until the system
- runs out.
-
- To provide a better performing solution, RSI links IRIX IDL using GNU malloc
- from the Free Software Foundation (FSF). This use is governed by the
- terms of the GNU LIBRARY GENERAL PUBLIC LICENSE, found in the file
- gnu_library_license.txt in this directory.
-
- - When an IDL linked with GNU malloc starts up and prints the
- announcement message containing the Research Systems Copyright
- notice, it also prints a message asserting the FSF copyright
- on GNU malloc and directs you to the file copyrights.txt in
- this directory for more information.
-
- - We obtained GNU malloc from the primary GNU FTP repository
-
- ftp://prep.ai.mit.edu:/pub/gnu/malloc.tar.gz
-
- We made only the minimal changes necessary to compile it under
- IRIX using the standard SGI C compiler. The resulting source
- code is supplied in the compressed tar file malloc.tar.gz found
- in the bin/bin.sgi subdirectory of this IDL distribution.
- All changes are described below. Note that this file is compressed
- with the GNU gzip program, also available from prep.ai.mit.edu.
-
- - Research Systems makes no claims of ownership to any changes
- made to GNU malloc. You may redistribute them freely and do
- whatever you want with them.
-
- - The Makefile supplied in the bin/bin.sgi subdirectory of this
- distribution contains instructions on how to relink IDL, using
- either the standard system malloc or GNU malloc.
-
- RSI Changes:
- ------------
-
- Only 2 files were altered to make GNU malloc work with IDL. The originals
- of both files are also provided, with a ".orig" file extension, so you
- can use the Unix diff(1) command to view the changes.
-
- Makefile:
- - Uncommented the -DUSG definition for CPPFLAGS, since IRIX
- is System V based.
-
- - Added a rule to create a file called rsi.c containing a single
- function called IDL_using_gnu_malloc() that IDL uses to
- determine if a startup announcement for GNU malloc is needed.
-
- - Added rules to build 2 sharable libraries, libidl_gmalloc.so
- for using IDL with GNU malloc, and libidl_no_gmalloc.so
- for using it with the system malloc.
-
- ralloc.c:
- This module makes heavy use of pointer arithmetic on (void *)
- pointers. The standard SGI C compiler does not allow this
- construct. We introduced a macro named VOID_PTR_ARITH that
- uses a cast to work around this.
-